package com.indusfo.spc.mapper;

import com.indusfo.spc.pojo.Device;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 	类说明:设备资料mapper接口
 *
 * @author XIET
 *
 * @version 创建时间：2018年12月3日 上午10:37:09
 */

public interface DeviceMapper {

	/**
	 * 	查询全部设备资料
	 * @param device
	 * @return
	 */
	List<Device> listDevice(@Param("device")Device device,@Param("startDate")String startDate,@Param("endDate")String endDate,@Param("maintainStartDate")String maintainStartDate,@Param("maintainEndDate")String maintainEndDate);

	/**
	 *	 查询单个设备资料
	 * @param deviceId
	 * @return
	 */
	List<Device> getDevice(@Param("deviceId") Integer deviceId);

	/**
	 * 	批量删除设备资料
	 * @param deviceIds
	 * @param dataState
	 * @return
	 */
	int deleteDevice(@Param("deviceIds") Long[] deviceIds, @Param("dataState") Integer dataState);

	/**
	 * 	查询分页总数
	 * @param device
	 * @return
	 */
	int countDevice(@Param("device")Device device,@Param("startDate")String startDate,@Param("endDate")String endDate,@Param("maintainStartDate")String maintainStartDate,@Param("maintainEndDate")String maintainEndDate);

	/**
	 * 查询工位
	 * @param lProductionLineId
	 * @return
	 */
	List<Integer> listLStation(Integer lProductionLineId);

	/**
	 * 根据编码查重
	 * @param deviceId
	 * @param deviceCode
	 * @return
	 */
	Device getByDeviceCode(Device device);
	/**
	 * 重写父类的新增方法
	 */
	int insertSelective(Device device);
	/**
	 * 重写父类的更新方法
	 */
	int updateByPrimaryKeySelective(Device device);

	//根据名称去查找设备
	int selectByDeviceName(Device device);

	/**
	 * 根据车间id查询包含所属工位的个数
	 * @param workshopIds
	 * @return
	 */
	int queryByWorkshopIds(@Param("workshopIds") Integer[] workshopIds);

	/**
	 * 查询设备包含指定工位的个数
	 * @param stationIds
	 * @return
	 */
	int queryByStationIds(@Param("stationIds") Integer[] stationIds);
	// 设备报废
    int scrapDevice(@Param("deviceIds")List<Integer> deviceIds);
}
